Type Erasure
Java
Java
コンパイラ
が
コード
を
コンパイル
するときの、
ジェネリクス
に関する
挙動
訳すなら
型消去
?
ジェネリクスで定義した
型変数
を消去し、代わりにその型変数を参照した箇所を全て
Object
に置換する。
もし
型変数
に
型の上界
があれば、参照した箇所を全てその上界の型へ置換する。
例
型変数
T
の定義が
T extends SuperClass
だった場合、
private T variable
は
private SuperClass variable
に置換される。
コーナーケース
の
型安全
を守るために、
Bridge
Method
と呼ばれる自動的に生成された関数がコンパイル時に挿入される場合がある。
詳しくは
Type Erasure in Java Explained
参照
参考
Type Erasure in Java Explained